<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Mps\V20190612\Models;
use TencentCloud\Common\AbstractModel;

/**
 * DescribeAsrHotwords response structure.
 *
 * @method string getHotwordsId() Obtain ID of the hotword lexicon to be queried.
 * @method void setHotwordsId(string $HotwordsId) Set ID of the hotword lexicon to be queried.
 * @method integer getStatus() Obtain Current hotword lexicon id status. a value of 0 indicates that no template is bound to this hotword lexicon at the query moment and it can be deleted.
 * @method void setStatus(integer $Status) Set Current hotword lexicon id status. a value of 0 indicates that no template is bound to this hotword lexicon at the query moment and it can be deleted.
 * @method string getName() Obtain Name of the hot lexicon.
 * @method void setName(string $Name) Set Name of the hot lexicon.
 * @method integer getType() Obtain Specifies the value is 0 for a temporary hotword lexicon and returns the string provided during creation.
Specifies the value is 1 for a file-based hotword lexicon, and returns the content of the file uploaded during creation.


 * @method void setType(integer $Type) Set Specifies the value is 0 for a temporary hotword lexicon and returns the string provided during creation.
Specifies the value is 1 for a file-based hotword lexicon, and returns the content of the file uploaded during creation.


 * @method string getFileName() Obtain Name of the uploaded hotword file.
 * @method void setFileName(string $FileName) Set Name of the uploaded hotword file.
 * @method array getHotWords() Obtain List of hotwords returned for the query.
 * @method void setHotWords(array $HotWords) Set List of hotwords returned for the query.
 * @method string getContent() Obtain Hotword text, which depends on the value of Type.
If the value of Type is 0, the hotword string is returned.
If the value of Type is 1, the base64-encoded content of the hotword file is returned.
 * @method void setContent(string $Content) Set Hotword text, which depends on the value of Type.
If the value of Type is 0, the hotword string is returned.
If the value of Type is 1, the base64-encoded content of the hotword file is returned.
 * @method integer getWordCount() Obtain Number of words contained in the hotword lexicon.
 * @method void setWordCount(integer $WordCount) Set Number of words contained in the hotword lexicon.
 * @method integer getOffset() Obtain Paging offset. Default value: 0.
 * @method void setOffset(integer $Offset) Set Paging offset. Default value: 0.
 * @method integer getLimit() Obtain Number of returned entries. Default value: 10. Maximum value: 100.
 * @method void setLimit(integer $Limit) Set Number of returned entries. Default value: 10. Maximum value: 100.
 * @method string getCreateTime() Obtain Hot word lexicon createtime in ISOUTC format "2006-01-02T15:04:05Z".
 * @method void setCreateTime(string $CreateTime) Set Hot word lexicon createtime in ISOUTC format "2006-01-02T15:04:05Z".
 * @method string getUpdateTime() Obtain Hot lexicon last modified in ISOUTC format "2006-01-02T15:04:05Z".
 * @method void setUpdateTime(string $UpdateTime) Set Hot lexicon last modified in ISOUTC format "2006-01-02T15:04:05Z".
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class DescribeAsrHotwordsResponse extends AbstractModel
{
    /**
     * @var string ID of the hotword lexicon to be queried.
     */
    public $HotwordsId;

    /**
     * @var integer Current hotword lexicon id status. a value of 0 indicates that no template is bound to this hotword lexicon at the query moment and it can be deleted.
     */
    public $Status;

    /**
     * @var string Name of the hot lexicon.
     */
    public $Name;

    /**
     * @var integer Specifies the value is 0 for a temporary hotword lexicon and returns the string provided during creation.
Specifies the value is 1 for a file-based hotword lexicon, and returns the content of the file uploaded during creation.


     */
    public $Type;

    /**
     * @var string Name of the uploaded hotword file.
     */
    public $FileName;

    /**
     * @var array List of hotwords returned for the query.
     */
    public $HotWords;

    /**
     * @var string Hotword text, which depends on the value of Type.
If the value of Type is 0, the hotword string is returned.
If the value of Type is 1, the base64-encoded content of the hotword file is returned.
     */
    public $Content;

    /**
     * @var integer Number of words contained in the hotword lexicon.
     */
    public $WordCount;

    /**
     * @var integer Paging offset. Default value: 0.
     */
    public $Offset;

    /**
     * @var integer Number of returned entries. Default value: 10. Maximum value: 100.
     */
    public $Limit;

    /**
     * @var string Hot word lexicon createtime in ISOUTC format "2006-01-02T15:04:05Z".
     */
    public $CreateTime;

    /**
     * @var string Hot lexicon last modified in ISOUTC format "2006-01-02T15:04:05Z".
     */
    public $UpdateTime;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param string $HotwordsId ID of the hotword lexicon to be queried.
     * @param integer $Status Current hotword lexicon id status. a value of 0 indicates that no template is bound to this hotword lexicon at the query moment and it can be deleted.
     * @param string $Name Name of the hot lexicon.
     * @param integer $Type Specifies the value is 0 for a temporary hotword lexicon and returns the string provided during creation.
Specifies the value is 1 for a file-based hotword lexicon, and returns the content of the file uploaded during creation.


     * @param string $FileName Name of the uploaded hotword file.
     * @param array $HotWords List of hotwords returned for the query.
     * @param string $Content Hotword text, which depends on the value of Type.
If the value of Type is 0, the hotword string is returned.
If the value of Type is 1, the base64-encoded content of the hotword file is returned.
     * @param integer $WordCount Number of words contained in the hotword lexicon.
     * @param integer $Offset Paging offset. Default value: 0.
     * @param integer $Limit Number of returned entries. Default value: 10. Maximum value: 100.
     * @param string $CreateTime Hot word lexicon createtime in ISOUTC format "2006-01-02T15:04:05Z".
     * @param string $UpdateTime Hot lexicon last modified in ISOUTC format "2006-01-02T15:04:05Z".
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("HotwordsId",$param) and $param["HotwordsId"] !== null) {
            $this->HotwordsId = $param["HotwordsId"];
        }

        if (array_key_exists("Status",$param) and $param["Status"] !== null) {
            $this->Status = $param["Status"];
        }

        if (array_key_exists("Name",$param) and $param["Name"] !== null) {
            $this->Name = $param["Name"];
        }

        if (array_key_exists("Type",$param) and $param["Type"] !== null) {
            $this->Type = $param["Type"];
        }

        if (array_key_exists("FileName",$param) and $param["FileName"] !== null) {
            $this->FileName = $param["FileName"];
        }

        if (array_key_exists("HotWords",$param) and $param["HotWords"] !== null) {
            $this->HotWords = [];
            foreach ($param["HotWords"] as $key => $value){
                $obj = new AsrHotwordsSetItem();
                $obj->deserialize($value);
                array_push($this->HotWords, $obj);
            }
        }

        if (array_key_exists("Content",$param) and $param["Content"] !== null) {
            $this->Content = $param["Content"];
        }

        if (array_key_exists("WordCount",$param) and $param["WordCount"] !== null) {
            $this->WordCount = $param["WordCount"];
        }

        if (array_key_exists("Offset",$param) and $param["Offset"] !== null) {
            $this->Offset = $param["Offset"];
        }

        if (array_key_exists("Limit",$param) and $param["Limit"] !== null) {
            $this->Limit = $param["Limit"];
        }

        if (array_key_exists("CreateTime",$param) and $param["CreateTime"] !== null) {
            $this->CreateTime = $param["CreateTime"];
        }

        if (array_key_exists("UpdateTime",$param) and $param["UpdateTime"] !== null) {
            $this->UpdateTime = $param["UpdateTime"];
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
